package cn.wolfcode.luowowo.website.util;

import cn.wolfcode.luowowo.cache.util.RedisKeys;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieUtil {

    public static void addCookie(String name, String value, int time, HttpServletResponse resp){
        // 8: 创建cookie对象 Cookie c = new Cookie("token", 创建出来的随机码) 注意: 设置cookie存活时间30分钟
        Cookie cookie = new Cookie(name, value);
        cookie.setMaxAge(time);
        // 9: 使用response对象将cookie对象传输到浏览器中
        resp.addCookie(cookie);
    }

    public static String getUserToken(HttpServletRequest req, HttpServletResponse resp){
        // 10: 第二次请求时, 浏览器会将之前保存到token信息通过cookie携带到请求汇总, 所以通过请求对象获取token的值
        String token = null;
        Cookie[] cookies = req.getCookies();
        for (Cookie cookie : cookies) {
            // 12: 如果用户信息存在, 表示之前已经登陆或者登陆还有效 注意: 如果用户存在, 延长cookie时间
            if("token".equals(cookie.getName())){
                token = cookie.getValue();
                cookie.setMaxAge(RedisKeys.USER_LOGIN_TOKEN.getTime().intValue());
                resp.addCookie(cookie);
                break;
            }
        }
        return token;
    }
}
